﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Reflection;

namespace SpringNetCheckerCore
{
    /// <summary>
    /// 組件資料
    /// </summary>
    public class AssemblyData
    {
        /// <summary>
        /// 組件名稱
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 組件是存在的
        /// </summary>
        public bool IsExistent { get; set; }

        /// <summary>
        /// 已載入的同名.net組件
        /// </summary>
        public Assembly LoadedAssembly { get; set; }

        /// <summary>
        /// 各類別是否存在的對照表
        /// </summary>
        public IDictionary<string, bool> ClassIsExistent = new Dictionary<string, bool>();

        /// <summary>
        /// 各類別的型別資訊
        /// </summary>
        public IDictionary<string, Type> ClassTypeInfo = new Dictionary<string, Type>();

        /// <summary>
        /// 使用到此組件的物件
        /// </summary>
        public IList<XElement> RelativeObjects = new List<XElement>();

        /// <summary>
        /// 使用到此組件的屬性
        /// </summary>
        public IList<XElement> RelativeProperties = new List<XElement>();
    }
}
